impl<'a, 'b> Registry for RegistrySource<'a, 'b> {
fn query(&mut self, dep: &Dependency) -> CargoResult<Vec<Summary>> {
- let mut chars = dep.get_name().chars();
+ let name = dep.get_name();
let path = self.checkout_path.clone();
- let path = path.join(format!("{}{}", chars.next().unwrap_or(':'),
- chars.next().unwrap_or(':')));
- let path = path.join(format!("{}{}", chars.next().unwrap_or(':'),
- chars.next().unwrap_or(':')));
- let path = path.join(dep.get_name());
+ let path = match name.len() {
+ 1 => path.join("1").join(name),
+ 2 => path.join("2").join(name),
+ 3 => path.join("3").join(name.slice_to(1)).join(name),
+ _ => path.join(name.slice(0, 2))
+ .join(name.slice(2, 4))
+ .join(name),
+ };
let contents = match File::open(&path) {
Ok(mut f) => try!(f.read_to_string()),
Err(..) => return Ok(Vec::new()),
me = mac32
elif triple == 'x86_64-apple-darwin':
me = mac64
-elif triple == 'i686-pc-mingw32':
+elif triple == 'i686-w64-mingw32':
+ triple = 'i686-pc-mingw32'
me = win32
elif triple == 'x86_64-w64-mingw32':
triple = 'i686-pc-mingw32'
.file("config.json", format!(r#"
{{"dl":"{}","upload":""}}
"#, dl_url()).as_slice())
- .file("fo/o:/foo", pkg("foo", "0.0.1", [], &foo_cksum))
- .file("ba/r:/bar", pkg("bar", "0.0.1", ["foo|>=0.0.0"], &bar_cksum))
+ .file("3/f/foo", pkg("foo", "0.0.1", [], &foo_cksum))
+ .file("3/b/bar", pkg("bar", "0.0.1", ["foo|>=0.0.0"], &bar_cksum))
.file("ba/d-/bad-cksum", pkg("bad-cksum", "0.0.1", [], &bar_cksum))
.nocommit_file("no/ty/notyet", pkg("notyet", "0.0.1", [], ¬yet))
.build();